package com.dyp.GatewayDemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


/**
 * 无网关的微服务架构存在的问题：
 *
 *     客户端多次请求不同的微服务，增加客户端代码或配置编写的复杂
 *     认证复杂，每个服务都需要独立认证
 *     存在跨域请求，在一定场景下处理相对复杂
 *
 * 网关的基本功能
 *
 *     路由转发
 *     认证、鉴权
 *     熔断
 *     负载均衡
 *     限流
 *     日志监控
 * Gateway过滤器的生命周期：
 *
 *     PRE：这个过滤器在请求被路由之前调用。我们可以利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调式信息等。
 *     POST：这种过滤器在路由到微服务以后执行。这种过滤器可以用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。
 *
 * Gateway 的Filter从作用范围可以分为两种：
 *
 *     GatewayFilter：应用到单个路由或者一个分组的路由上（需要在配置文件中配置）。
 *     GlobalFilter：应用到所有的路由上（无需配置，全局生效）。
 *
 *     http://localhost:8070/mvc/dyp?token=abcdcdecd-ddcdeicd12会生效
 *     http://localhost:8070/mvc/dyp返回401
 *
 * 需要了解下Nacos和Eureka两个注册中心的区别
 */

@SpringBootApplication
public class GatewayDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(GatewayDemoApplication.class, args);
	}

}
